package TreeDayShuZu.Exercise;

import TwoDay.Scanner;

public class Exercise04 {
    public static void main(String[] args) {
       /*
         使用二维数组打印一个 10 行杨辉三角
         1. 第一行有 1 个元素, 第 n 行有 n 个元素
         2. 每一行的第一个元素和最后一个元素都是 1
         3. 从第三行开始, 对于非第一个元素和最后一个元素的元素。即：
           yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];
           */
        //1.动态初始化的方式创建二维数组
        int[][] yangHui = new int[10][];
        for (int i = 0; i < yangHui.length; i++) {
            yangHui[i] = new int[i + 1];
            //给数组元素赋值
            yangHui[i][0] = yangHui[i][i] = 1;
            if (i > 1) {//从i==2开始执行
                //非首元素和非魔元素的角标范围
                for (int j = 1; j < yangHui[i].length-1; j++) {
                    yangHui[i][j] = yangHui[i - 1][j - 1] + yangHui[i - 1][j];//非首元素和非魔元素的赋值
                }
            }
        }
        //遍历二维数组
        for (int i = 0; i < yangHui.length ; i++) {
            for (int j = 0; j < yangHui[i].length; j++) {
                System.out.print(yangHui[i][j]+"\t");
            }
            System.out.println();
        }
    }
}